The present invention relates to a technique for improving software productivity. More specifically, the present invention relates to a technique for supporting object-oriented analysis and design to be used in object-oriented software development.
In software development based on object-oriented technology, software architecture is designed by defining classes abstracted from objects in a system and the relations between these classes. A more detailed description is provided in J. Rumbaugh et al, xe2x80x9cObject-Oriented Modeling and Designxe2x80x9d, Prentice Hall, 1991. Also, I. Jacobson, xe2x80x9cObject-Oriented Software Engineering: A Use Case Driven Approachxe2x80x9d, Addison-Wesley, 1992, and G. Booch et al, xe2x80x9cUML (Unified Modeling Language Semantics and Notation Guide 1.0)xe2x80x9d, Rational Software, 1997 describes how a system can be analyzed from the outside.
In these publications, the term xe2x80x9cUse Casexe2x80x9d is used to refer to a natural language provided by an actor in a system, where the natural language represents how the system being designed is to be used, i.e., a description of how the system is to be used as seen from outside the system. The methodologies involved serve to clearly define the objects within a system that relate to individual use cases. An example of a tool that provides support for a proposed object analysis and design notation and that assists in object analysis and design is xe2x80x9cRosexe2x80x9d from Rational Software, Inc. xe2x80x9cRosexe2x80x9d is described in Hans-Erik Eriksson, M. Penker, xe2x80x9cUML Toolkitxe2x80x9d, John Wiley and Sons, 1997.
The manner in which objects are obtained from use cases based on the method presented above will be described. First, actors are specified, functions involved in the system being designed (use cases) are enumerated, and related objects are obtained according to the behavior of each function. For example, FIG. 9 shows a use case diagram and a conceptual diagram of related objects.
As shown in FIG. 9, an actor 0901 requests a function of a use case 0903 from a system 0902. Based on the use case 0903, the behaviors within the system 0902 are considered and an object is derived from this. Objects can be broadly categorized into three types: external interfaces 0904, built around a screen; an entity 0905 allowing information to be saved, mainly in a database; and a controller 0906 for controlling objects. By defining business areas using the notations for these objects, a real-world business can be modeled and formed into an object-oriented design, thus allowing flexible accommodation of real-world changes.
In the conventional technology described above, it is assumed that the deriving of actors, use cases, and the different objects will be performed by a specialist in the target domain. However, it is rare that a specialist in a target domain will be knowledgeable in object-oriented technology. Thus, the functions assigned to the different objects will depend on the experience of the analyst/designer, leading to variations in the quality of the analysis and design.
Furthermore, the tool based on the conventional technology described above is a tool that supports the notation proposed by the methodology and that provides assistance in saving and presenting the results of the analysis and design. However, the tool cannot provide guidelines for analysis and design.
Furthermore, object inheritance, which is a characteristic of object-oriented design, is generally achieved by determining common aspects of objects and deriving higher-level objects. However, since common aspects of objects are determined based on the characteristics and responsibilities of objects, only ambiguous guidelines can be provided. Furthermore, the use case indicated in the conventional technology above is generally expressed as sentences. Extraction of objects from sentences is simply performed by taking the nouns, and, so, without experience, there is no way to know even if the extracted object is correct or incorrect. Furthermore, even with similar use cases, different notations in the sentence prevent the same use case from being reused. Furthermore, the objects resulting from the design operation will have deeply related structures between objects, but no guideline is provided for these structures.
Also, in the conventional technology described above, the focus is on modeling the real world. For this reason, there is no design of the screen flows involved when the system is in operation and an end user is selecting an activity to reach a desired activity. Furthermore, while the design of data models is performed according to a different perspective from the design of objects, the demands in business on data model design are intimately related to object design. However, no guidelines are provided for the relationship between object design and data model design.
In a tool based on the conventional technology described above, the relationship between the information indicated in the use cases and the object design information is very loose. Thus, a change in a use case is not reflected in a change in the object design information, leading to a significant problem in the consistency of the design information.
The object of the present invention is to provide an object-oriented technology analysis and design supporting method for generating object design information with minimal quality variations due to analysis and design. This is achieved by using elements from management resource construction information and business activity construction information that can be recognized in business as objects, and by assigning object behaviors to appropriate object methods. In other words, the object of the present invention is to provide an object-oriented technology analysis and design supporting method that allows generation of object design information even if a person (in particular, an end user knowledgeable about business would be desirable) is not knowledgeable about object-oriented technology, thereby allowing the gap between the end user and the system developer to be bridged.
In order to achieve the object described above, the object-oriented technology analysis and design supporting method of the present invention uses a computer to provide support for analyzing and designing a system relating to business according to object-oriented technology. The method of the present invention performs the operations described below.
Management resource construction information, in which resources (e.g., people, things, money, technology) to be managed in business are described hierarchically as elements, is input. Business activity construction information, in which business activities (e.g., purchasing, production, sales) to be performed in business are described hierarchically as elements, is input. Furthermore, a business action scenario is input. The business action scenario describes, for each of the elements positioned at the lowermost level in the business activity construction information, the arrangement of operations needed to carry out the corresponding business activity. Then, the elements contained in the management resource construction information and the business activity construction information are treated as objects. For the elements treated as objects, object design information is generated and stored. The object design information includes class information, which is used to group objects, method information, which is used to indicate behavior of objects, and relations class information, which is used to indicate relations with other objects.
Furthermore, in the operation for generating and storing the object design information, the elements in the management resource construction information and the business activity construction information are obtained as class information. For the elements positioned at the lowermost level of the business activity construction information, the corresponding arrangement of operations from the business action scenario are obtained as method information. For the elements in the management resource construction information, the arrangement of operations for which the element is treated as a target is obtained as method information. For the elements in the management resource construction information and the business activity construction information, the elements hierarchically above and below the element is obtained as relational class information.
According to the object-oriented technology analysis and design supporting method provided by the present invention, elements recognizable in business from the management resource construction and the business activity construction are handled as objects. This allows objects to be designed so that they are only dependent on the business, and, based on the arrangement of operations in business activities, the behavior of objects can be assigned to appropriate object methods. As a result, an analyst/designer not knowledgeable about object-oriented technology (in particular, an end user knowledgeable about business would be desirable) can, when performing object-oriented analysis and design, generate object design information that minimizes quality variations, thus improving design quality and improving productivity. Thus, end users knowledgeable about business can generate object design information even if they are not knowledgeable about object-oriented technology. This allows the gap between the end user and the system developer to be bridged.